home *** CD-ROM | disk | FTP | other *** search
- ; DTFM Tone Dialler, just dials the phone number in the variable. Works
- ; on all BT digital exchanges
-
- Opt c-
- Section "ToneDialler",Code_c
-
- Start Movem.l d0-d7/a0-a6,-(sp)
-
- Move.l 4,a6 ; Disable Tasks and
- Jsr -$78(a6) ; Interrupts
-
- Lea SineToneData(pc),a0
- Move.l a0,$Dff0b0 ; Set Sample pos to Sine
- Move.w #8,$Dff0b4 ; Set DMA Length
- Move.w #0,$Dff0b6 ; Set period...
- Move.l a0,$Dff0c0 ; Same with other channel
- Move.w #8,$Dff0c4 ;
- Move.w #0,$Dff0c6 ;
- Move.w #$0010,$Dff09e ; No Audio interrupt
- Move.w #$8206,$Dff096 ; Just enable channels 1&2
- Moveq #0,d0
-
- Lea TeleNumber(pc),a5
- GetNumber Move.b (a5)+,d0 ; Run digits thru ToneDial
- Beq Quit
- Bsr DoDialTone
- Btst #6,$Bfe001
- Beq Quit
- Bra GetNumber
-
- Quit Move.w #6,$Dff096
- JustEnable Move.l 4,a6
- Jsr -$7e(a6)
- Movem.l (sp)+,d0-d7/a0-a6
- Clr.l d0
- Rts
-
- DoDialTone Move.l d0,d7 ; Dual Tone Frequency Mod
- Cmp.b #$30,d7 ; Dialler routine
- Bne NotASCZero
- Add.b #11,d7
- NotASCZero Cmp.b #$30,d0
- Blt DoPause
- Cmp.b #$39,d0
- Bgt DoPause
- Sub.b #$31,d7
- Move.w d7,d1
- Divu #3,d1
- Move.w d1,d2
- Swap d1
- Asl.w #1,d1
- Asl.w #1,d2
- And.l #$ff,d1
- And.l #$ff,d2
- Lea ToneBank1(pc),a0 ; Get Tone 1 Pitch
- Lea ToneBank2(pc),a1 ; Get Tone 2 Pitch
- Move.w 0(a0,d1.l),$Dff0b6
- Move.w 0(a1,d2.l),$Dff0c6
- Move.w #$40,$Dff0b8 ; Set Volumes to 40
- Move.w #$40,$Dff0c8 ;
- Move.l #$88b8,d0
- TonePauseLoop Sub.l #1,d0
- Bne TonePauseLoop
- Move.w #0,$Dff0b8 ; Set Volumes to 0
- Move.w #0,$Dff0c8 ;
- DoPause Move.l #$2d92,d0 ; Quick Pause in between
- PauseLoop Sub.l #1,d0 ; Tones
- Bne PauseLoop
- Rts
-
- TeleNumber Dc.b "0803 294775",0
- Even
-
- SineToneData Dc.b $0,$26,$47,$5c,$64,$5c,$47,$26
- Dc.b $0,$da,$b9,$a4,$9c,$a4,$b9,$da
-
- ToneBank1 Dc.w $b9,$a7,$97,$89
-
- ToneBank2 Dc.w $140,$122,$106,$ed,0,0,0,0
-
-